1. Field of the Invention
The present invention relates generally to factory systems and, more particularly, to an architecture for an extensible factory system.
2. Description of the Related Art
Technological advances have produced increasingly complex manufacturing systems, and accordingly, increasingly complex computer systems are necessary to manage the manufacturing process in a factory or other manufacturing environment. Information must be gathered to determine output requirements, to procure raw materials, to allocate manufacturing resources, to schedule work in various manufacturing processes, to track work in progress, to troubleshoot and correct manufacturing problems, to measure actual manufacturing performance, to compare actual performance to performance goals, and to control quality of units produced. The sources of information used to make these management decisions vary widely, from product sales data to shop personnel to the actual manufacturing tools themselves. Many manufacturing facilities manage this vast information by combining multiple computerized management systems with paper-based management systems.
Problems with capturing and communicating information are exacerbated in a semiconductor factory. Manufacturing of integrated circuits is perhaps the most complex manufacturing process in existence today. Factors contributing to this complexity include constant device miniaturization, process intricacy, product diversity, and changing technologies. Management of the semiconductor manufacturing process is accordingly complex and can involve planning thousands of steps to be performed on a silicon wafer to produce a fully packaged and integrated electronic component.
These thousands of steps are performed by many different types of tools in the factory, and most tools communicate information in a vendor-specific way. Although communication standards such as SECS-I and SECS-II (managed by Semiconductor Equipment and Materials International (SEMI)) have been adopted, these standards define only syntax and not content. Each vendor determines the content of the data provided by its tools and has little incentive to develop or follow a standard used by other vendors.
As a result, data about the manufacturing process in the factory are sometimes available as a live data stream from a tool in the factory, with content and format varying for each tool according to the vendor supplying the tool. Data about the manufacturing process are also available from domain applications, which collect data from tools and analyze the data.
In most factories it is desirable to have a single system that controls product flow and equipment usage. Such a system is referred to herein as a factory system. A factory system must overcome the complexities of communicating with tools that provide different types of data in varying formats. In most factories, the factory system interacts with numerous domain applications such as a manufacturing execution system, equipment interfaces, user authentication systems, statistical process control applications, engineering data analysis systems, equipment performance reporting applications, and material handling systems.
However, a single product or a suite of products from a single vendor seldom meets the software needs of any particular factory. Typically, domain applications from which the factory system obtains information are provided by many different information technology organizations and many different third-party vendors. The domain applications are furthermore designed to serve very specific purposes, are developed using software and operating systems selected by the respective vendors, are distributed across various hardware and/or networks in the factory, and are typically not designed to interact with or provide information to other domain applications. As a result, information needed for efficient operation of the factory is scattered among different domain applications in different locations with incompatible technologies and incompatible data storage mechanisms.
Furthermore, each of the domain applications likely has its own nomenclature for items in the factory and therefore does not “speak the same language” as the other domain applications. The term item is used herein to describe physical objects in the factory as well as logical concepts such as lots, routes, processes, and recipes. Data about an item can be organized in different ways by different domain applications. For example, some domain applications in a semiconductor factory can identify a wafer by a slot and a carrier, whereas other domain applications refer to the wafer's vendor scribe.
Finally, the architecture of most factory systems requires that, when new capabilities are to be added, the new capabilities must be integrated to each of the domain applications in the factory system. Each of these integration points is usually quite expensive and time-consuming to implement, and each new domain application increases the factory system's complexity. In addition, every domain application is usually dependent on the particular systems and implementation technologies with which it communicates. As a result, replacing a domain application is difficult because everything that communicates with it must be changed.
What is needed is an architecture for a factory system that overcomes the fact that domain applications are distributed and have inconsistent interfaces and incompatible technologies. The architecture should decrease the complexity of integrating information obtained from a large number of different domain applications residing in different locations and provided by different vendors. The architecture should allow a domain application to be easily modified or replaced without affecting other domain applications. Finally, the architecture should provide a common nomenclature for items in the factory and a common interface between domain applications.